package menu.menu;

/**
 * Clase que representa un ingrediente de un Item en el tablet y el sistema.
 * @author JSR
 * @version $Id: Ingrediente.java 19 2010-09-29 17:32:00Z batianusrey $
 */
public class Ingrediente
{
    //---------------------------------------
    // Atributos
    //---------------------------------------

    /**
     * Nombre del ingrediente
     */
    private String nombreIngrediente;
    /**
     * Descripción del ingrediente
     */
    private String descripcionIngrediente;
    //---------------------------------------
    // Atributos cuando es un pedido
    //---------------------------------------
    /**
     * Boolean que identifica si el ingrediente se
     * selecciona para la preparación del menú.
     */
    private boolean seleccionado;
    //---------------------------------------
    // Constructor
    //---------------------------------------

    /**
     * Constructor de la clase <code>Ingrediente</code>
     * @param nombreIngrediente - Nombre del ingrediente
     * @param descripcionIngrediente - Descripción del ingrediente
     */
    public Ingrediente( String nombreIngrediente, String descripcionIngrediente )
    {
        this.nombreIngrediente = nombreIngrediente;
        this.descripcionIngrediente = descripcionIngrediente;
        // Atributos cuando es un pedido
        this.seleccionado = true;
    }
    //---------------------------------------
    // Getters y Setters
    //---------------------------------------

    public String getDescripcionIngrediente()
    {
        return descripcionIngrediente;
    }

    public String getNombreIngrediente()
    {
        return nombreIngrediente;
    }

    public boolean isSeleccionado()
    {
        return seleccionado;
    }
    //---------------------------------------
    // Métodos
    //---------------------------------------

    /**
     * Cambia el estado de selección.<br>
     * A <code>true</code> si es <code>false</code> y viceversa.
     */
    public void cambiarEstadoSeleccionado()
    {
        seleccionado = seleccionado ? !seleccionado : seleccionado;
    }

    /**
     * Resetear el ingrediente.<br>
     * Implica resetear todos los atributos de pedido del ingrediente a su estado por default
     */
    public void resetearAtributosDePedido()
    {
        // Atributos cuando es un pedido
        this.seleccionado = true;
    }
}
